package dev.hitools.common.utils.download

import com.arialyy.aria.core.Aria
import dev.hitools.common.app.provider.InitProvider


class DownloadManager private constructor() {
    /**
     * 进度监听
     */
    interface OnProgressListener {
        /**
         * @param percent 下载的百分比
         * @param speed 下载的速度, 单位 b/s
         */
        fun progress(percent: Float, speed: Long)
    }

    /**
     * 状态改变
     */
    interface OnStatusChangedListener {
        fun onStatusChanged(info: DownloadStatusInfo)
    }

    companion object {
        val instance by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { DownloadManager() }

        init {
            Aria.init(InitProvider.app)
        }

        @JvmStatic
        fun newTask(): DownloadTask {
            return DownloadTask()
        }
    }
}